/**
 * 泛型：
 * 在定义函数，接口和类的时候，不预先指定具体的类型而是使用的时候指定
 * 泛型：也像是个参数：
 * */
function createArray(length, value) {
    var res = [];
    for (var i = 0; i < length; i++) {
        res[i] = value;
    }
    return res;
}
var res = createArray(3, 1);
console.log(res);
//类数组：
function sum() {
    var args = [];
    for (var _i = 0; _i < arguments.length; _i++) {
        args[_i] = arguments[_i];
    }
    var args2 = arguments;
    for (var i = 0; i < args2.length; i++) {
        console.log(args2[i]);
    }
}
sum(1, 2, 3);
//泛型类:
var MyArray = /** @class */ (function () {
    function MyArray() {
        this.list = [];
    }
    MyArray.prototype.add = function (value) {
        this.list.push(value);
        return this.list;
    };
    return MyArray;
}());
var arr = new MyArray();
arr.add(1);
//用LengthWise约束范型，
function logger(val) {
    console.log(val.length);
}
logger('d');
